package com.ychs.lawyerback.common;

import lombok.Getter;


/**
 * 定义状态码
 * 为了让前端方便处理，所有接口返回的数据格式保持一致（包含状态码、消息、数据）。
 */
@Getter
public enum ResultCode {
    SUCCESS(200,"操作成功"),// 登录成功
    ERROR(500,"操作失败，请联系管理员"),// 系统错误
//    LOGIN_ERROR(500,"登录用户名或密码有误"),// 登录失败
    LOGIN_USERNAME_ERROR(500100,"用户名不存在"),
    USERNAME_EXIST(500100,"用户名已存在"),
    LOGIN_PWD_ERROR(500101,"密码错误"),
    PARAMS_ERROR(500102,"参数有误"),
    TOKEN_NOTFOUND(600100,"token未找到，可能是空的或者格式错误"),
    TOKEN_NOTVALIDED(600101,"token不合法"),
    TOKEN_EXPIRE(600102,"token已过期，token无效或已被注销，不匹配请重新登录"),
    METHOD_NOT_PRIVILEGE(600103,"没有访问此方法的权限"),
    FILE_UPLOAD_ERROR(600104,"文件下载失败" ),
    SYSTEM_ERROR(501, "系统错误"),          // 添加此常量
    OPERATION_FAILED(1001, "操作失败"),    // 添加此常量
    FILE_NOT_FOUND(12345, "文件不存在"),
    ROLENAME_ERROR(300,"角色名称已存在"),
    PERMISSION_CHARACTER(301,"权限字符已存在"),
    MENU_ERROR(401,"菜单不存在"),
    MENU_INCLUDE(402,"菜单包含子菜单，无法删除"),

    LAWYER_IDCARD(701,"该身份证号已关联其他律师"),
    LAWYER_LICENSE_NO(702,"该执业证号已存在"),
    PART_TIME_WORK(703,"兼职律师需填写工作单位"),
    LAWYER_WORK(704,"专职律师无需填写兼职工作单位"),
    LAWYER_NOT_EXIST(705,"律师信息不存在"),
    USER_ADD_FAIL(700,"律师添加，用户同步数据失败"),
    DATA_NOT_FOUND(1000,"找不到数据"),
    TRANSFER_RECORDS(6, "转所记录"),
    FILE_TRANSFER_RECORDS(7, "档案调转记录"),
    CERTIFICATE(8, "证书"),
    PHOTO(9, "照片"),
    RESUME(10, "简历"),
    DATA_INSERT_FAIL(1001,"律师ID生成失败"),
    FILE_DELETE_FAIL(1001,"本地文件删除失败"),
    PARAM_ERROR(1002, "用户ID不能为空"),
    FILE_DELETE_ERROR(1003, "证书文件删除失败"),
    SEAL_NOT_DOUND(1004, "印章数据找不到，更新失败"),
    ADD_CONTRACT_FAIL(1005, "添加注销记录失败"),
    ;



    //成员变量，存放每个具体值
    private Integer code;// 状态码
    private String msg;// 提示消息

    /**
     * 这俩其实就类似是：code=200，message="操作成功"
     * @param code
     * @param msg
     * 构造方法：初始化成员变量，枚举的构造方法必须是private
     * 不能用setter方法赋值，因为它每个常量（eg：SUCCESS）的字段(eg:code)在创建时就必须初始化，且之后不能修改
     */
    ResultCode(Integer code, String msg) {
        this.code = code;//给code赋值
        this.msg = msg;//给message赋值
    }
}
